/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladora;

import Entidades.Cliente;
import Persistencia.PersistenciaCliente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import telas.CadastroClienteView;
import telas.GerenteView;
import telas.ManterClienteView;

/**
 *
 * @author Thalyta
 */
public class ManterClientePresenter {

    private ManterClienteView telamanter ;
    PersistenciaCliente clientes = new PersistenciaCliente();
    
    
    public ManterClientePresenter(ManterClienteView telamante) {
        this.telamanter = telamante;
        
     
        
      
       
    
       carregaCliente(clientes.getCliente(), telamanter);
       telamanter.getBtncadastrar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
               
              cadastrar();
            }
        });
        
        telamanter.getBtnFechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                fechar();
            }
           
        });
       telamanter.getBtnEditar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
                 editar();
                 
                 
                
            }
        });
        telamanter.getBtnExcluir().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                excluir();
                
            }
        });
        
           telamanter.setVisible(true);
    }
    public void cadastrar(){
     CadastroClienteView cliente = new CadastroClienteView();
     CadastrarClientePresenter contCliente = new CadastrarClientePresenter(cliente);   
    }
    public void fechar(){
    
                 GerenteView telagerente = new GerenteView();
                 GerentePresenter cont = new GerentePresenter(telagerente);
                 telamanter.setVisible(false);
    }
    public void editar(){
        
                  String nome = telamanter.getTblTabelaCliente().getValueAt(telamanter.getTblTabelaCliente().getSelectedRow(), 0).toString();
                 if ("".equals(nome)){
                 
               JOptionPane.showMessageDialog(telamanter, "Você deve selecionar um linha na tabela");
               ManterClienteView telacliente = new ManterClienteView();
               ManterClientePresenter telamanter = new ManterClientePresenter(telacliente);
                 } 
                 else {Cliente b ;
                  b = clientes.PesquisaCliente(nome);
                  CadastroClienteView cliente = new CadastroClienteView();
                  cliente.getTxtnome().setText(b.getNome());
                  cliente.getTxtCpf().setText(b.getCPF());
                  cliente.getTxtendereco().setText(b.getEndereço());
                  cliente.getTxtnomeusuario().setText(b.getNomeusuario());
                  cliente.getTxtnumeroconta().setText(b.getAgencia().getCodigo());
                  
                 cliente.setVisible(true);
                 clientes.excluirCliente(b);
                 clientes.gravaCliente();
                 
                 CadastrarClientePresenter contCliente = new CadastrarClientePresenter(cliente);
                 }
    } 
    public void excluir(){
                 String nome = telamanter.getTblTabelaCliente().getValueAt(telamanter.getTblTabelaCliente().getSelectedRow(), 0).toString();
                  Cliente b ;
                  b = clientes.PesquisaCliente(nome);
                  clientes.excluirCliente(b);
                  clientes.gravaCliente();
                  telamanter.setVisible(true);
    }
    private void carregaCliente(ArrayList a,ManterClienteView telamanter ){
        
        
        DefaultTableModel tm = new DefaultTableModel(
                
            new Object[][]{},
            new String [] {"Nome", "Endereço", "Numero Conta","Cod Agencia"}){
            
        @Override
        public boolean isCellEditable(int row, int col){
            return false;
        }
     };
       
     tm.setNumRows(0);
     
      for (int i = 0; i < a.size(); i++) {
            Cliente cliente = (Cliente) a.get(i);
            tm.addRow(new Object[]{cliente.getNome(), cliente.getEndereço(),cliente.getConta().getNumero(),cliente.getAgencia().getCodigo()});
            
         
     }
    telamanter.getTblTabelaCliente().setModel(tm);
        
    } 
}
